Исключения, проверяемые и нет
Если кратко, то исключения нужны для отделения положительного сценария (когда все идет как надо) от отрицательного (когда случается ошибка и положительный сценарий прерывается). Это полезно, поскольку очень часто информации для обработки ошибки в коде мало и требуется передать информацию о случившемся выше.
Например, есть функция по считыванию числа из файла (или не числа, не важно):
String readStoredData(String id) throws FileNotFoundException, IOException { File file = new File(storage, id + ".dat"); try (BufferedReader in = new BufferedReader(new FileReader(file))) { return in.readLine(); } }
Как видно, тут нет кода, решающего что делать в случае ошибки. Да и не ясно что делать – завершить программу, вернуть «», null или еще что-то? Поэтому исключения объявлены в throws
и будут обработаны где-то на вызывающей стороне:
int initCounter(String name) throws IOException, NumberFormatException { try { return